<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // then的返还值：一.onResolved的返还值  二.onRejected的返还值
    let p = new Promise((resolve, reject) => {
      resolve("success");
    })
    // 一.成功以后，then的返还值；
    let result = p.then(res => {
      // 1.没有任何返还值
      // 2.返还普通纸
      // return "hello";
      // 3.返还一个promise对象
      return new Promise((resolve, reject) => {
        // resolve("返还成功的promise");
        reject("失败状态的promise对象");
      })
      // 4.抛出一个错误
      throw new Error("错误了");
    }, err => {
      return 111;
    });
    console.log(result);  // 是then成功之后的返还结果
    result.then(res => {
      console.log("成功了", res);
    }, err => {
      console.log("失败了", err);
    })

    //  1,如果 onResolved 没有任何返还  , 那么 result的值是 
    //                    fulfilled 状态的 promise 且结果值是  undefined；
    //  2. 如果返还一个普通值；
    //                    得到一个fulfilled状态的promise对象 且结果是 返还的普通值
    //  3.返还一个promise对象
    //                    得到返还的promise对象。
    //  4.抛出一个错误 得到一个失败状态的promise对象
    //                    得到一个失败状态的promise对象，结果值是错误的内容
    //  总结： 无论如何 then的调用都会得到一个promise对象，then之后可以继续调用then方法


  </script>
</body>

</html>